/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entidades;

import oracle.sql.DATE;

/**
 *
 * @author Franco
 */
public class Animal {

    private DATE fecha_destete_aprox;
    private DATE fecha_nacimiento;
    private DATE fecha_peleteado_aprox;
    private DATE fecha_ralgro_aprox;
    private Animal madre;
    private Animal padre;
    private String nombre;
    private Sexo sexo;
    private Camara ubicacion;
    private Categoria categoria;

    public Animal() {
    }

    public Animal(DATE fecha_nacimiento, Animal madre, Animal padre, String nombre, Camara ubicacion) {
        this.fecha_nacimiento = fecha_nacimiento;
        this.madre = madre;
        this.padre = padre;
        this.nombre = nombre;
        this.ubicacion = ubicacion;
    }

    public Categoria getCategoria() {
        return categoria;
    }

    public void setCategoria(Categoria categoria) {
        this.categoria = categoria;
    }

    public DATE getFecha_destete_aprox() {
        return fecha_destete_aprox;
    }

    public void setFecha_destete_aprox(DATE fecha_destete_aprox) {
        this.fecha_destete_aprox = fecha_destete_aprox;
    }

    public DATE getFecha_nacimiento() {
        return fecha_nacimiento;
    }

    public void setFecha_nacimiento(DATE fecha_nacimiento) {
        this.fecha_nacimiento = fecha_nacimiento;
    }

    public DATE getFecha_peleteado_aprox() {
        return fecha_peleteado_aprox;
    }

    public void setFecha_peleteado_aprox(DATE fecha_peleteado_aprox) {
        this.fecha_peleteado_aprox = fecha_peleteado_aprox;
    }

    public DATE getFecha_ralgro_aprox() {
        return fecha_ralgro_aprox;
    }

    public void setFecha_ralgro_aprox(DATE fecha_ralgro_aprox) {
        this.fecha_ralgro_aprox = fecha_ralgro_aprox;
    }

    public Animal getMadre() {
        return madre;
    }

    public void setMadre(Animal madre) {
        this.madre = madre;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public Animal getPadre() {
        return padre;
    }

    public void setPadre(Animal padre) {
        this.padre = padre;
    }

    public Sexo getSexo() {
        return sexo;
    }

    public void setSexo(Sexo sexo) {
        this.sexo = sexo;
    }

    public Camara getUbicacion() {
        return ubicacion;
    }

    public void setUbicacion(Camara ubicacion) {
        this.ubicacion = ubicacion;
    }

    @Override
    public String toString() {
        return this.getNombre();
    }

    public String datosAnimal() {
        return "Animal{"
//                + "nombre de animal = " + this.getNombre()
//                + "nombre del padre = " + this.getPadre().getNombre()
//                + "nombre de la madre = " + this.getMadre().getNombre()
//                + "sexo = " + this.getSexo().getNombre()
//                + "ubicacion = " + this.getUbicacion().getNombre()
//                + "fecha_nacimiento = " + String.valueOf(this.getFecha_nacimiento().dateValue())
//                + "categoria = " + this.getCategoria().getNombre()
//                + "fecha_destete_aprox = " + String.valueOf(this.getFecha_destete_aprox().dateValue())
//                + "fecha_peleteado_aprox = " + String.valueOf(this.getFecha_peleteado_aprox().dateValue())
//                + "fecha_ralgro_aprox = " + String.valueOf(this.getFecha_ralgro_aprox().dateValue())
                + '}';
    }

    public String getUbicacionActual() {
        Camara cam=this.getUbicacion();
        Bateria bat=(Bateria) cam.getBateria().get(0);
        Jaula jau=bat.getJaula().get(0);
        String nuevaUbicacion=cam.getNombre()+" - "+cam.getTipo_camara().getNombre()+" - "+bat.getNombre()+" - "+jau.getNombre();
        return nuevaUbicacion;
    }
//    public boolean hayQueDestetar(Date fecha_hoy){
//        if(this.getFecha_destete_aprox()==fecha_hoy)
//            return true;
//        return false;
//    }
}
